<?php
class AdquirenteDAO extends GenericDAO  {

	function __construct() {
		$this->tabela["alteracao"] = array(	"id" 	=> 100,
											"nome" 	=> strtolower(substr(get_class(), 0, -3)));
	
		$this->tabela["consulta"]  = array(	"id" 	=> 119,
											"nome" 	=> "vw_" . strtolower(substr(get_class(), 0, -3)));

		$this->tabela["relatorio"] = array(	"id" 	=> 495,
											"nome" 	=> "vw_rel_adquirentes");
	}
	
	public function consultarPK($valor) {
	    $sql = "where id = :id";
	    $params['id'] = $valor;
	    return $this->consultar($sql, $params);
	}

	public function consultarNome($valor) {
	    $sql = "where nome like :nome";
	    $params['nome'] = $valor;
	    return $this->consultar($sql, $params);
	}
	
	public function consultarCPF($valor) {
	    $sql = "where cpf like :cpf";
	    $params['cpf'] = $valor;
	    return $this->consultar($sql, $params);
	}
	
	public function inserir($registro, $finalizarTransacao = true) {
		$data = explode('/', $registro['dt_nasc']);
		if (isset($data[2])) {
			$registro['dt_nasc'] = $data[2] . "-" . $data[1] . "-" . $data[0];
		} else {
			unset($registro['dt_nasc']);
		}
		$res = null;
		if ($this->inserirRegistro($registro, $finalizarTransacao)) {
			$res['id'] = $this->ultimoId();
		}
		return $res;
	}
	
	public function excluir($id, $finalizarTransacao = true) {
		$pk['id'] = $id;
		return $this->excluirRegistro($pk, $finalizarTransacao);	
	}
	
	public function alterar($registro, $finalizarTransacao = true) {
		$data = explode('/', $registro['dt_nasc']);
		$registro['dt_nasc'] = $data[2] . "-" . $data[1] . "-" . $data[0];
		$pk['id'] = $registro['id'];
		unset($registro['id']);
		return $this->alterarRegistro($registro, $pk, $finalizarTransacao);
	}
	
	public function consultarRelatorio($tipo, $filtro, $dt_ini, $dt_fim, $ordem) {
		switch ($tipo) {
			case "c":
				$where = "where nome like :nome";
				$params['nome'] = "$filtro%";
				break;
			case "u":
				$where = "where nome = :nome";
				$params['nome'] = $filtro;
				break;
			default:
				$where = "";
				$params= array();
		}
		
		if (($dt_ini != "") && ($dt_fim != "")) {
			if (substr_count($where, "where")) {
				$where .= " and ";
			} else {
				$where = "where ";
			}
			$where .= " data_nasc between :dt_ini and :dt_fim ";
			
			$data = explode("/", $dt_ini);
			$params['dt_ini'] = $data[2] . "-" . $data[1] . "-" . $data[0];
			
			$data = explode("/", $dt_fim);
			$params['dt_fim'] = $data[2] . "-" . $data[1] . "-" . $data[0];
		}
		switch ($ordem) {
			case "c":
				$ordem = "order by nome";
				break;
			case "d":
				$ordem = "order by data_nasc";
				break;
		}
		return $this->extrairRelatorio($where, $ordem, $params);
	}

	public function cartasCobranca($tipo, $filtro) {
		$sql = "select * from vw_rel_cartascobranca ";
		switch ($tipo) {
			case "c":
				$where = "where nome like :nome";
				$params['nome'] = "$filtro%";
				break;
			case "u":
				$where = "where nome = :nome";
				$params['nome'] = $filtro;
				break;
			default:
				$where = "";
				$params= array();
		}
		return $this->execQuery($sql . $where, $params);
	}
}
?>